package com.itheima.api.pms;

import com.itheima.vo.domain.AjaxResult;
import com.itheima.vo.dto.pms.PmsProductDto;
import com.itheima.vo.pojo.PmsProduct;

import java.util.ArrayList;

public interface PmsProductService {

    /**
     * 1.创建商品
     * @param pmsProductDto
     * @return
     */
    AjaxResult create(PmsProductDto pmsProductDto);

    /**
     * 2.查询商品
     * @param brandId  商品品牌编号
     * @param keyword  商品名称模糊关键字商品名称模糊关键字
     * @param pageNum
     * @param pageSize
     * @param productCategoryId  商品分类编号
     * @param productSn  商品货号
     * @param publishStatus  上架状态
     * @param verifyStatus  审核状态
     * @return
     */
    AjaxResult FindBylist(Integer brandId, String keyword, Integer pageNum, Integer pageSize, Integer productCategoryId, String productSn, Integer publishStatus, Integer verifyStatus);

    /**
     * 3.根据商品名称或货号模糊查询
     * @param keyword
     * @return
     */
    AjaxResult simpleList(String keyword);

    /**
     * 4.批量修改删除状态
     * @param deleteStatus
     * @param ids
     * @return
     */
    AjaxResult deleteStatus(Integer deleteStatus, ArrayList<Integer> ids);

    /**
     * 5.批量设为新品
     * @param newStatus
     * @param ids
     * @return
     */
    AjaxResult newStatus(Integer newStatus, ArrayList<Integer> ids);

    /**
     * 6.批量上下架商品
     * @param publishStatus
     * @param ids
     * @return
     */
    AjaxResult publishStatus(Integer publishStatus, ArrayList<Integer> ids);

    /**
     * 7.批量推荐商品
     * @param recommendStatus
     * @param ids
     * @return
     */
    AjaxResult recommendStatus(Integer recommendStatus, ArrayList<Integer> ids);

    /**
     * 8.批量修改审核状态
     * @param detail
     * @param verifyStatus
     * @param ids
     * @return
     */
    AjaxResult verifyStatus(String detail, Integer verifyStatus, ArrayList<Integer> ids);

    /**
     * 9.更新商品
     * @param id
     * @param pmsProductDto
     * @return
     */
    AjaxResult updateWithId(Integer id, PmsProductDto pmsProductDto);

    /**
     * 10.根据商品id获取商品编辑信息
     * @param id
     * @return
     */
    AjaxResult updateInfoWithId(Integer id);

    PmsProduct getById(Long productId);
}
